package com.ybkj.o2o.mc.entity;

import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonProperty;

import java.io.Serializable;
import java.util.Date;

/**
 * 乘客账户记录.
 *
 * @author Administrator
 */
public class PassengerAccount implements Serializable {

  private Long id;
  
  private Long departmentId;
  
  private String departmentName;
  
  @JsonProperty("passenger_id")
  private Long passengerId;    //乘客Id

  @JsonProperty("passenger_phone")
  private String passengerPhone;  //乘客电话

  @JsonProperty("passenger_name")
  private String passengerName;  //乘客姓名

  @JsonProperty("enterprise_id")
  private Long enterpriseId;    //企业Id

  @JsonProperty("enterprise_name")
  private String enterpriseName;  //企业姓名
  
  @JsonProperty("introducer_id")
  private Long introducerId;    //被推荐人乘客Id

  private Double money;      //操作金额

  private Double afterDrawMoney;  //操作后可提现金额

  private Double afterNoDrawMoney;//操作后不可提现金额

  private Double afterFrozenMoney;//操作后冻结金额

  private String orderNo;      //订单号

  private Long orderId;      //订单Id

  private Integer orderType;    //订单类型0代驾,1专车,2跑腿,3租车

  private String payType;      //支付类型

  private String details;      //明细

  private String operator;    //操作人

  private String tradeNo;      //流水号

  private String appKey;      //区分系统Key

  private Long companyId;      //公司Id

  private Date created;

  private Date updated;
  
  private String parentNames;

  @JSONField(serialize = false, deserialize = false)
  private Integer version;

  private static final long serialVersionUID = 1L;

  public Long getId() {
    return id;
  }

  public void setId(Long id) {
    this.id = id;
  }

  public Long getCompanyId() {
    return companyId;
  }

  public void setCompanyId(Long companyId) {
    this.companyId = companyId;
  }

  public String getAppKey() {
    return appKey;
  }

  public void setAppKey(String appKey) {
    this.appKey = appKey;
  }

  public Double getMoney() {
    return money;
  }

  public void setMoney(Double money) {
    this.money = money;
  }

  public Double getAfterDrawMoney() {
    return afterDrawMoney;
  }

  public void setAfterDrawMoney(Double afterDrawMoney) {
    this.afterDrawMoney = afterDrawMoney;
  }

  public Double getAfterNoDrawMoney() {
    return afterNoDrawMoney;
  }

  public void setAfterNoDrawMoney(Double afterNoDrawMoney) {
    this.afterNoDrawMoney = afterNoDrawMoney;
  }

  public Double getAfterFrozenMoney() {
    return afterFrozenMoney;
  }

  public void setAfterFrozenMoney(Double afterFrozenMoney) {
    this.afterFrozenMoney = afterFrozenMoney;
  }

  public String getOrderNo() {
    return orderNo;
  }

  public void setOrderNo(String orderNo) {
    this.orderNo = orderNo == null ? null : orderNo.trim();
  }

  public Long getOrderId() {
    return orderId;
  }

  public void setOrderId(Long orderId) {
    this.orderId = orderId;
  }

  public Integer getOrderType() {
    return orderType;
  }

  public void setOrderType(Integer orderType) {
    this.orderType = orderType;
  }

  public String getPayType() {
    return payType;
  }

  public void setPayType(String payType) {
    this.payType = payType == null ? null : payType.trim();
  }

  public String getDetails() {
    return details;
  }

  public void setDetails(String details) {
    this.details = details == null ? null : details.trim();
  }

  public String getOperator() {
    return operator;
  }

  public void setOperator(String operator) {
    this.operator = operator == null ? null : operator.trim();
  }

  public String getTradeNo() {
    return tradeNo;
  }

  public void setTradeNo(String tradeNo) {
    this.tradeNo = tradeNo == null ? null : tradeNo.trim();
  }

  public Date getCreated() {
    return created;
  }

  public void setCreated(Date created) {
    this.created = created;
  }

  public Date getUpdated() {
    return updated;
  }

  public void setUpdated(Date updated) {
    this.updated = updated;
  }

  public Integer getVersion() {
    return version;
  }

  public void setVersion(Integer version) {
    this.version = version;
  }

  public Long getPassengerId() {
    return passengerId;
  }

  public void setPassengerId(Long passengerId) {
    this.passengerId = passengerId;
  }

  public String getPassengerPhone() {
    return passengerPhone;
  }

  public void setPassengerPhone(String passengerPhone) {
    this.passengerPhone = passengerPhone;
  }

  public String getPassengerName() {
    return passengerName;
  }

  public void setPassengerName(String passengerName) {
    this.passengerName = passengerName;
  }

  public Long getEnterpriseId() {
    return enterpriseId;
  }

  public void setEnterpriseId(Long enterpriseId) {
    this.enterpriseId = enterpriseId;
  }

  public String getEnterpriseName() {
    return enterpriseName;
  }

  public void setEnterpriseName(String enterpriseName) {
    this.enterpriseName = enterpriseName;
  }

public Long getDepartmentId() {
	return departmentId;
}

public void setDepartmentId(Long departmentId) {
	this.departmentId = departmentId;
}

public String getDepartmentName() {
	return departmentName;
}

public void setDepartmentName(String departmentName) {
	this.departmentName = departmentName;
}
  public Long getIntroducerId() {
    return introducerId;
  }

  public void setIntroducerId(Long introducerId) {
    this.introducerId = introducerId;
  }
  
  public String getParentNames() {
	return parentNames;
}

public void setParentNames(String parentNames) {
	this.parentNames = parentNames;
}

public enum PayType {
    /**
     * 后台充值
     */
    RECHARGE_TYPE_ADMIN,
    /**
     * 后台扣取
     */
    PAYTYPE_ADMIN,
    /**
     * 活动返现
     */
    RECHARGE_TYPE_ACTIVITY,
    /**
     * 支付宝充值
     */
    RECHARGE_TYPE_ALIPAY,
    /**
     * 微信充值
     */
    RECHARGE_TYPE_WX,
    /**
     * 银联充值
     */
    RECHARGE_TYPE_UNION,
    /**
     * 礼品卡兑换
     */
    RECHARGE_GIFT_CARD,
    /**
     * 修改订单金额
     */
    CASH_MODIFY,
    /**
     * 现金支付
     */
    PAYTYPE_CASH,
    /**
     * 签单支付
     */
    PAYTYPE_SIGN,
    /**
     * 余额支付
     */
    PAYTYPE_BALANCE,
    /**
     * 支付宝支付
     */
    PAYTYPE_ALIPAY,
    /**
     * 银联支付
     */
    PAYTYPE_UNIONPAY,
    /**
     * 微信支付
     */
    PAYTYPE_WEIXIN,
    /**
     * 优惠券支付
     */
    PAYTYPE_COUPON,
    /**
     * 推荐提成
     */
    RECHARGE_TYPE_REBATE,
    /**
     * 返还余额
     */
    RECHARGE_TYPE_RETURN,
    /**
     * 销单退款
     */
    RECHARGE_TYPE_CANCEL_RETURN
  }
}
